/*
 * Copyright (c) 2003-2005
 * XDoclet Team
 * All rights reserved.
 */
package org.xdoclet.plugin.hibernate.qtags;

import org.xdoclet.plugin.hibernate.qtags.parameter.Access;
import org.xdoclet.plugin.hibernate.qtags.parameter.Column;
import org.xdoclet.plugin.hibernate.qtags.parameter.Generated;
import org.xdoclet.plugin.hibernate.qtags.parameter.Type;

/**
 * Declares a version property.  The &lt;version&gt; element is optional and indicates that the table contains
 * versioned data. This is particularly useful if you plan to use long transactions
 *
 * @qtags.location method
 * @qtags.location field
 */
public interface HibernateVersionTag extends com.thoughtworks.qdox.model.DocletTag, Column, Type, Access, Generated {
    /**
     * A version property value that indicates that an instance is newly instantiated (unsaved), distinguishing
     * it from detached instances that were saved or loaded in a previous session. (undefined specifies that
     * the identifier property value should be used.)
     *
     * @qtags.default undefined
     * @qtags.allowed-value null
     * @qtags.allowed-value negative
     * @qtags.allowed-value undefined
     */
    String getUnsavedValue();
    
    String getGenerated();
}